package ThreadSafe1;


public class MyThread extends Thread{
    // 表示这个类的对象,都共享ticket
    static int ticket = 1;

    // 创建锁的对象,可以是任意的,但一定要是唯一的,
    // static 不管创建多少对象 都是共享的,用的都是同一个
    static Object obj = new Object();

    public void run(){
            while(true){
                // 同步带码块
                /*
                * 细节1 不能写到循环的外边
                * 细节2 锁对象一定要是唯一的
                * */
                synchronized (obj) {
                    if(ticket == 101){
                        return;
                    }

                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }

                    System.out.println(getName()+"正在卖第"+ticket+"张票");
                    ticket++;
                }
            }
    }
}
